package com.yc.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

/**
 * 用户表
 * @TableName user
 */
@TableName(value ="user")
@Data
public class User implements Serializable {
    /**
     * 用户编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户真实姓名
     */
    @NotBlank(message = "用户名不可为空")
    @TableField(value = "user_name")
    private String userName;

    /**
     * 手机号码(登录账号)
     */
    @Pattern(regexp = "^1[3|4|5|7|8][0-9]{9}$",message = "请输入正确的手机号")
    @TableField(value = "phone")
    private String phone;

    /**
     * 账号密码
     */
    @TableField(value = "password")
    private String password;

    /**
     * 用户邮箱
     */
    @Pattern(regexp = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$",message = "请输入正确的邮箱")
    @TableField(value = "mail")
    private String mail;

    /**
     * 身份证号码
     */
    @Pattern(regexp = "^([1-6][1-9]|50)\\d{4}(18|19|20)\\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$",message = "请输入正确的身份证")
    @TableField(value = "id_number")
    private String idNumber;

    /**
     * 用户头像
     */
    @TableField(value = "image")
    private String image;

    /**
     * 家庭地址
     */
    @TableField(value = "address")
    private String address;

    /**
     * 角色(0表示房客，1表示房客、房东，2表示房客、房东、管理员)
     */
    @TableField(value = "role")
    private Integer role;

    /**
     * 用户信誉度(满分为100)
     */
    @TableField(value = "reputation")
    private Integer reputation;

    /**
     * openID  每个微信号只有一个唯一
     */
    @TableField(value = "openID")
    private String openID;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}